home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / pcboard / spage11b.zip / SLOBPAGE.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1996-05-15  |  6KB  |  370 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER001
  20.     String   TSTRING001(40)
  21.     String   TSTRING002(1)
  22.     String   STRING003
  23.     String   STRING004
  24.     String   STRING005
  25.     String   STRING006
  26.     String   STRING007
  27.     String   STRING008
  28.     String   STRING009
  29.     Time     TIME001
  30.     Time     TIME002
  31.     Time     TIME003
  32.     Int      INT001
  33.  
  34. ;------------------------------------------------------------------------------
  35.  
  36.     Cls
  37.     STRING008 = PPEPath() + "SPCONFIG"
  38.     If (Exist(STRING008 + LangExt())) Then
  39.         FOpen 1, STRING008 + LangExt(), 0, 0
  40.     ElseIf (Exist(STRING008)) Then
  41.         FOpen 1, STRING008, 0, 0
  42.     Else
  43.         End
  44.     Endif
  45.     FDefIn 1
  46.     FDGet TSTRING001(0)
  47.     FDGet TSTRING001(1)
  48.     FDGet TSTRING001(2)
  49.     FDGet TSTRING001(3)
  50.     FDGet TSTRING001(4)
  51.     FDGet TSTRING001(5)
  52.     FDGet TSTRING001(6)
  53.     FDGet TSTRING001(7)
  54.     FDGet TSTRING001(8)
  55.     FDGet TSTRING001(9)
  56.     FDGet TSTRING001(10)
  57.     FDGet TSTRING001(11)
  58.     FDGet TSTRING001(12)
  59.     FDGet TSTRING001(13)
  60.     FDGet TSTRING001(14)
  61.     FDGet TSTRING001(15)
  62.     FDGet TSTRING001(16)
  63.     FDGet TSTRING001(17)
  64.     FDGet TSTRING001(18)
  65.     FDGet TSTRING001(19)
  66.     FDGet TSTRING001(20)
  67.     FDGet TSTRING001(21)
  68.     FDGet TSTRING001(22)
  69.     FDGet TSTRING001(23)
  70.     FDGet TSTRING001(24)
  71.     FDGet TSTRING001(25)
  72.     FDGet TSTRING001(26)
  73.     FDGet TSTRING001(27)
  74.     FDGet TSTRING001(28)
  75.     FDGet TSTRING001(29)
  76.     FDGet TSTRING001(30)
  77.     FDGet TSTRING001(31)
  78.     FDGet TSTRING001(32)
  79.     FDGet TSTRING001(33)
  80.     FDGet TSTRING001(34)
  81.     FDGet TSTRING001(35)
  82.     FDGet TSTRING001(36)
  83.     FDGet TSTRING001(37)
  84.     FDGet TSTRING001(38)
  85.     FDGet TSTRING001(39)
  86.     FClose 1
  87.     :LABEL001
  88.     FOpen 1, TSTRING001(41) + "PCBOARD.SYS", 0, 0
  89.     FSeek 1, 4, 0
  90.     FRead 1, STRING009, 2
  91.     FClose 1
  92.     If (STRING009 == "-1") Goto LABEL002
  93.     Goto LABEL004
  94.     :LABEL002
  95.     TIME001 = Time()
  96.     TIME002 = ReadLine(PCBDat(), 189)
  97.     TIME003 = ReadLine(PCBDat(), 190)
  98.     If ((TIME001 >= TIME002) && (TIME001 <= TIME003)) Then
  99.         Goto LABEL003
  100.     Else
  101.         Goto LABEL004
  102.     Endif
  103.     :LABEL003
  104.     TSTRING002(1) = "ON"
  105.     AnsiPos 1, 1
  106.     DispFile PPEPath() + "slobdisp", 4
  107.     AnsiPos 1, 1
  108.     PrintLn "@X08SLOBPAGE.PPE (C)1996 Slob-Trot Software Oy Ab@X07"
  109.     AnsiPos Left(TSTRING001(24), 2), Right(TSTRING001(24), 2)
  110.     InputStr "_", STRING003, 0, TSTRING001(23), "/\=+][^~∙{}?><| " + Mask_Path(), 4096
  111.     FAppend 1, PPEPath() + "Reason.log", 2, 0
  112.     FPutLn 1, U_Name(), ", ", Date(), ", ", Time(), ", " + STRING003
  113.     FClose 1
  114.     FOpen 2, PPEPath() + "Temp", 2, 3
  115.     FPutLn 2, STRING003 + Chr(13) + Chr(13)
  116.     FClose 2
  117.     If (STRING003 == "") Goto LABEL011
  118.     If (STRING003 == Chr(27)) Goto LABEL001
  119.     AnsiPos Left(TSTRING001(15), 2), Right(TSTRING001(15), 2)
  120.     Print TSTRING001(14)
  121.     Goto LABEL015
  122.     :LABEL004
  123.     Cls
  124.     DispFile PPEPath() + "pageoff", 4
  125.     AnsiPos 1, 1
  126.     :LABEL005
  127.     AnsiPos Left(TSTRING001(3), 2), Right(TSTRING001(3), 2)
  128.     Print TSTRING001(1)
  129.     AnsiPos Left(TSTRING001(6), 2), Right(TSTRING001(6), 2)
  130.     Print TSTRING001(5)
  131.     AnsiPos Left(TSTRING001(9), 2), Right(TSTRING001(9), 2)
  132.     Print TSTRING001(8)
  133.     AnsiPos Left(TSTRING001(3), 2), Right(TSTRING001(3), 2)
  134.     :LABEL006
  135.     STRING004 = Inkey()
  136.     If (STRING004 == "DOWN") Goto LABEL007
  137.     If (STRING004 == Chr(13)) Goto LABEL011
  138.     If (STRING004 == "UP") Goto LABEL009
  139.     If (STRING004 == Chr(27)) Goto LABEL011
  140.     Goto LABEL006
  141.     :LABEL007
  142.     AnsiPos Left(TSTRING001(3), 2), Right(TSTRING001(3), 2)
  143.     Print TSTRING001(2)
  144.     AnsiPos Left(TSTRING001(6), 2), Right(TSTRING001(6), 2)
  145.     Print TSTRING001(4)
  146.     AnsiPos Left(TSTRING001(9), 2), Right(TSTRING001(9), 2)
  147.     Print TSTRING001(8)
  148.     AnsiPos Left(TSTRING001(6), 2), Right(TSTRING001(6), 2)
  149.     :LABEL008
  150.     STRING004 = Inkey()
  151.     If (STRING004 == "DOWN") Goto LABEL009
  152.     If (STRING004 == Chr(13)) Goto LABEL013
  153.     If (STRING004 == "UP") Goto LABEL005
  154.     If (STRING004 == Chr(27)) Goto LABEL011
  155.     Goto LABEL008
  156.     :LABEL009
  157.     AnsiPos Left(TSTRING001(3), 2), Right(TSTRING001(3), 2)
  158.     Print TSTRING001(2)
  159.     AnsiPos Left(TSTRING001(6), 2), Right(TSTRING001(6), 2)
  160.     Print TSTRING001(5)
  161.     AnsiPos Left(TSTRING001(9), 2), Right(TSTRING001(9), 2)
  162.     Print TSTRING001(7)
  163.     AnsiPos Left(TSTRING001(9), 2), Right(TSTRING001(9), 2)
  164.     :LABEL010
  165.     STRING004 = Inkey()
  166.     If (STRING004 == "DOWN") Goto LABEL005
  167.     If (STRING004 == Chr(13)) Goto LABEL012
  168.     If (STRING004 == "UP") Goto LABEL007
  169.     If (STRING004 == Chr(27)) Goto LABEL011
  170.     Goto LABEL010
  171.     :LABEL011
  172.     KbdStuff "menu" + Chr(13)
  173.     End
  174.     :LABEL012
  175.     If (TSTRING001(25) == "NONE") Goto LABEL014
  176.     Cls
  177.     Call TSTRING001(25)
  178.     End
  179.     :LABEL013
  180.     AnsiPos Left(TSTRING001(11), 2), Right(TSTRING001(11), 2)
  181.     InputStr TSTRING001(10) + "_", STRING006, 8, 20, " /\" + Mask_Path(), 4096 + 1
  182.     If (STRING006 == TSTRING001(22)) Goto LABEL003
  183.     Newline
  184.     AnsiPos Left(TSTRING001(27), 2), Right(TSTRING001(27), 2)
  185.     PrintLn TSTRING001(26)
  186.     Newline
  187.     Delay 20
  188.     Goto LABEL004
  189.     :LABEL014
  190.     Newline
  191.     KbdStuff "C" + Chr(13) + "Y" + Chr(13)
  192.     End
  193.     :LABEL015
  194.     STRING005 = TSTRING001(12)
  195.     INTEGER001 = 2
  196.     Color TSTRING001(38)
  197.     AnsiPos Left(TSTRING001(37), 2), Right(TSTRING001(37), 2)
  198.     SPrintLn TSTRING001(34)
  199.     AnsiPos Left(TSTRING001(37), 2), Right(TSTRING001(37), 2) + 1
  200.     SPrintLn TSTRING001(35)
  201.     AnsiPos Left(TSTRING001(37), 2), Right(TSTRING001(37), 2) + 2
  202.     SPrint TSTRING001(36)
  203.     :LABEL016
  204.     Color TSTRING001(39)
  205.     If (STRING005 < 1) Goto LABEL017
  206.     AnsiPos Left(TSTRING001(13), 2), Right(TSTRING001(13), 2)
  207.     If (STRING005 > 9) Print STRING005
  208.     If (STRING005 < 10) Print "0" + STRING005
  209.     If (STRING005 == 10) Dec INTEGER001
  210.     Backup INTEGER001
  211.     PageOn
  212.     STRING006 = KInkey()
  213.     If (STRING006 == Chr(32)) Goto LABEL022
  214.     STRING007 = Abort()
  215.     If (STRING007) Goto LABEL017
  216.     AnsiPos Left(TSTRING001(13), 2) + 4, Right(TSTRING001(13), 2)
  217.     For INT001 = TSTRING001(28) To TSTRING001(29) Step TSTRING001(30)
  218.         Sound INT001
  219.         Delay 1
  220.         Print TSTRING001(32)
  221.         Print TSTRING001(33)
  222.     Next
  223.     AnsiPos Left(TSTRING001(13), 2) + 4, Right(TSTRING001(13), 2)
  224.     ClrEol
  225.     Dec STRING005
  226.     Goto LABEL016
  227.     AnsiPos Left(TSTRING001(17), 2), Right(TSTRING001(17), 2)
  228.     Print TSTRING001(16)
  229.     Goto LABEL018
  230.     :LABEL017
  231.     ResetDisp
  232.     If (TSTRING001(31) == "YES") Message 0, TSTRING001(0) , U_Name() , "SlobPage - Reason For Paging...", "R", 0, 0, 0, PPEPath() + "TEMP"
  233.     If (Exist(PPEPath() + "TEMP")) Delete PPEPath() + "TEMP"
  234.     Sound 0
  235.     AnsiPos Left(TSTRING001(17), 2), Right(TSTRING001(17), 2)
  236.     Print TSTRING001(16)
  237.     :LABEL018
  238.     AnsiPos Left(TSTRING001(19), 2), Right(TSTRING001(19), 2)
  239.     Print TSTRING001(18)
  240.     AnsiPos Left(TSTRING001(19), 2), Right(TSTRING001(19), 2)
  241.     :LABEL019
  242.     STRING005 = ""
  243.     STRING005 = Inkey()
  244.     If (STRING005 == "LEFT") Goto LABEL020
  245.     If (STRING005 == "RIGHT") Goto LABEL020
  246.     If (STRING005 == Chr(13)) Goto LABEL012
  247.     If (STRING005 == Chr(27)) Goto LABEL011
  248.     If (Upper(STRING005) == YesChar()) Goto LABEL012
  249.     If (Upper(STRING005) == NoChar()) Goto LABEL011
  250.     Goto LABEL019
  251.     :LABEL020
  252.     AnsiPos Left(TSTRING001(21), 2), Right(TSTRING001(21), 2)
  253.     Print TSTRING001(20)
  254.     :LABEL021
  255.     STRING005 = ""
  256.     STRING005 = Inkey()
  257.     If (STRING005 == "LEFT") Goto LABEL018
  258.     If (STRING005 == "RIGHT") Goto LABEL018
  259.     If (STRING005 == Chr(13)) Goto LABEL011
  260.     If (STRING005 == Chr(27)) Goto LABEL011
  261.     If (Upper(STRING005) == YesChar()) Goto LABEL012
  262.     If (Upper(STRING005) == NoChar()) Goto LABEL011
  263.     Goto LABEL021
  264.     :LABEL022
  265.     Sound 0
  266.     Newline
  267.     Chat
  268.     End
  269.  
  270. ;------------------------------------------------------------------------------
  271. ;
  272. ; Usage report (before postprocessing)
  273. ;
  274. ; ■ Statements used :
  275. ;
  276. ;    5       End
  277. ;    3       Cls
  278. ;    1       ClrEol
  279. ;    2       Color 
  280. ;    52      Goto 
  281. ;    18      Let 
  282. ;    18      Print 
  283. ;    2       PrintLn 
  284. ;    41      If 
  285. ;    2       DispFile 
  286. ;    4       FOpen 
  287. ;    1       FAppend 
  288. ;    4       FClose 
  289. ;    2       FPutLn 
  290. ;    1       ResetDisp
  291. ;    1       Delete 
  292. ;    2       InputStr 
  293. ;    2       Delay 
  294. ;    2       Dec 
  295. ;    4       Newline
  296. ;    2       KbdStuff 
  297. ;    1       Call 
  298. ;    30      AnsiPos 
  299. ;    1       Backup 
  300. ;    1       Message 
  301. ;    3       Sound 
  302. ;    1       Chat
  303. ;    1       SPrint 
  304. ;    2       SPrintLn 
  305. ;    1       PageOn
  306. ;    1       FSeek 
  307. ;    1       FRead 
  308. ;    1       FDefIn 
  309. ;    40      FDGet 
  310. ;
  311. ;
  312. ; ■ Functions used :
  313. ;
  314. ;    28      +
  315. ;    32      ==
  316. ;    3       <
  317. ;    2       <=
  318. ;    1       >
  319. ;    3       >=
  320. ;    4       !
  321. ;    3       &&
  322. ;    1       ||
  323. ;    4       Upper()
  324. ;    27      Left()
  325. ;    27      Right()
  326. ;    17      Chr()
  327. ;    1       Abort()
  328. ;    1       Date()
  329. ;    2       Time()
  330. ;    2       U_Name()
  331. ;    2       NoChar()
  332. ;    2       YesChar()
  333. ;    5       Inkey()
  334. ;    2       Mask_Path()
  335. ;    2       PCBDat()
  336. ;    8       PPEPath()
  337. ;    2       ReadLine()
  338. ;    3       Exist()
  339. ;    2       LangExt()
  340. ;    1       KInkey()
  341. ;
  342. ;------------------------------------------------------------------------------
  343. ;
  344. ; Analysis flags : Cd
  345. ;
  346. ; C - Call child PPE ■ 3
  347. ;     This is usually normal, but may be a tricky way to launch some
  348. ;     sysop-only commands.
  349. ;     ■ Search for : CALL
  350. ;
  351. ; d - Access PCBOARD.DAT ■ 2
  352. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  353. ;     for many PPE so they can find various informations on the system
  354. ;     (system paths, max number of lines in messages, ...) but it may also
  355. ;     be a way to gather vital informations.
  356. ;     ■ Search for : PCBDAT()
  357. ;
  358. ;------------------------------------------------------------------------------
  359. ;
  360. ; Postprocessing report
  361. ;
  362. ;    1       For/Next
  363. ;    0       While/EndWhile
  364. ;    3       If/Then or If/Then/Else
  365. ;    0       Select Case
  366. ;
  367. ;------------------------------------------------------------------------------
  368. ;                 AEGiS Corp - Break the routines, code against the machines!
  369. ;------------------------------------------------------------------------------
  370.